package com.ruoyi.zxjd.document.mapper;

import java.util.List;
import com.ruoyi.zxjd.document.domain.DocumentArrange;
import com.ruoyi.zxjd.document.domain.DocumentProgress;

import org.apache.ibatis.annotations.Param;

/**
 * 公文管理Mapper接口
 * 
 * @author lcc
 * @date 2021-01-28
 */
public interface DocumentArrangeMapper 
{
    /**
     * 查询公文管理
     * 
     * @param arrangeId 公文管理ID
     * @return 公文管理
     */
    public DocumentArrange selectDocumentArrangeById(Long arrangeId);

    /**
     * 查询公文管理列表
     * 
     * @param documentArrange 公文管理
     * @return 公文管理集合
     */
    public List<DocumentArrange> selectDocumentArrangeList(DocumentArrange documentArrange);

    /**
     * 新增公文管理
     * 
     * @param documentArrange 公文管理
     * @return 结果
     */
    public int insertDocumentArrange(DocumentArrange documentArrange);

    /**
     * 修改公文管理
     * 
     * @param documentArrange 公文管理
     * @return 结果
     */
    public int updateDocumentArrange(DocumentArrange documentArrange);

    /**
     * 删除公文管理
     * 
     * @param arrangeId 公文管理ID
     * @return 结果
     */
    public int deleteDocumentArrangeById(Long arrangeId);

    /**
     * 批量删除公文管理
     * 
     * @param arrangeIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteDocumentArrangeByIds(String[] arrangeIds);

    /**
     * 批量删除公文处理
     * 
     * @param customerIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteDocumentProgressByArrangeIds(String[] arrangeIds);

    /**
     * 批量删除公文附件
     * 
     * @param customerIds 需要删除的数据ID
     * @return 结果
     */
	public void deleteDocumentFileByArrangeIds(String[] arrangeIds);
    
    /**
     * 批量新增公文处理
     * 
     * @param documentProgressList 公文处理列表
     * @return 结果
     */
    public int batchDocumentProgress(List<DocumentProgress> documentProgressList);
    

    /**
     * 通过公文管理ID删除公文处理信息
     * 
     * @param arrangeId 需要删除的数据ID
     * @return 结果
     */
    public int deleteDocumentProgressByArrangeId(Long arrangeId);

    /**
     * 通过公文管理ID删除公文附件信息
     * 
     * @param arrangeId 需要删除的数据ID
     * @return 结果
     */
    public int deleteDocumentFileByArrangeId(Long arrangeId);

    /**
     * 通过工作安排ID查询工作进度发布范围
     * 
     * @param arrangeId 工作安排ID
     * @return 发布用户ID列表
     */
    public String[] selectReceiveUserByArrangeId(Long arrangeId);
    
    /**
     * 通过工作安排ID修改工作安排状态
     * 
     * @param arrangeId 工作安排ID
     * @param status 工作状态（1草稿 2进行中 3已完成）
     * @return
     */
    public int updateStatusByArrangeId(@Param("arrangeId") Long arrangeId,@Param("status") String status);

    /**
     * 通过工作安排ID修改工作进度发布状态
     * 
     * @param arrangeId 工作安排ID
     * @param status 发布状态（0未发布 1已发布）
     * @return
     */
    public int updateReleaseStatusByArrangeId(@Param("arrangeId") Long arrangeId,@Param("releaseStatus") String releaseStatus);
    

}
